\chapter{Loader Editor : Module d'édition du fichier Loader}\label{ch:loader}

%\section
%\subsection
%\subsubsection
%\paragraph{Import à partir d'un fichier}

L'objectif de \loaderName est de simplifier la création du fichier qui permet la transformation de notre fichier de log vers la base de donnée adaptée. On souhaite également présenter de façon plus convial et moins technique les différentes possibilités qui nous sont offertes. L'image \ref{loader1} nous présente l'interface de notre outil.

\begin{figure}
\centering
\includegraphics[scale=1]{../img/impEcr/loader1.jpg}
\caption{Aperçu de l'interface Loader Editor}
\label{loader1}
\end{figure}



\section{Outils génériques}

Ces outils sont indépendants du type de manipulation que l'on est en train de faire et se concentre sur le fichier en lui-même.
\begin{itemize}
	\item \textit{Load} bouton permet de charger un fichier déjà existant pour ainsi le modifier ou dupliquer.
	\item \textit{Save} bouton autorise la sauvegarde de notre fichier sur notre serveur. On choisit un nom pour celui-ci et il sera sauvegardé au sein du projet de conf avec les autres fichier de Loader (attention : cette action entraine un commit svn automatisé).
	\item  \textit{Load data from} est une fonction discrète et ponctuellement utile. Elle permet de choisir un fichier de grabber qui viendra récupérer les 10 dernières lignes du fichier de log. Ceci est particulièrement utile dans le cadre de l'utilisation de \textit{transformer} et pour réaliser différents tests sur ceux-ci.
\end{itemize}

\section{Modes d'édition}

\loaderName dispose de deux modes d'édition.
Le mode \textit{Element Configuration} vient accompagné la création de votre fichier et fournit des outils de tests et de validation. \textit{Manual Edition} fournit au contraire une édition version texte pour les utilisateurs avertis et des éditions techniques et poussées.

\subsection{Manual Edition}

Ce mode fournit un éditeur de texte minimaliste type bloc-note. Il permet néanmoins de visualiser le fichier obtenu en sortie, et de le modifier "à l'ancienne" tout en permettant de s'abstenir les commandes svn et le déploiement sur le serveur de développement.

\subsection{Configuration d'élément et affichage TreeView}\label{treeviewLoader}

Comme on peut l'observer sur l'image \ref{loader1} notre onglet \textit{Element configuration} s'articule autour de deux zones verticales. La première est la zone TreeView (ou arborescence). Celle-ci permet une représentation de notre fichier xml et l'utilisation des fonctionnalités accessibles via la barre d'outils. Celle-ci fournit d'ailleurs la possibilité de supprimer l'élément sélectionné, ou d'en ajouter un nouveau parmi la liste des éléments disponibles.

Ajouter un nouvel élément ouvre une fenetre de sélection via une liste on peut ainsi choisir un élément transformer précis, \ldots Celui-ci sera ensuite ajouter sous l'élément couramment selectionné.

Pour configurer un élément, on le sélectionne et le panneau droit de configuration se recharge pour afficher l'interface de configuration correspondante. Dans les paragraphes suivants, on décrit les différentes interfaces éléments par éléments.

 \paragraph{Transformer}

L'ensemble des éléments Transformer s'articule de façon similaire comme on peut l'observer sur la figure \ref{confRegex}. En haut se trouve les données récupérées via les éléments-fils, si le transformer courant n'a pas de fils alors il recherche les données brutes issues du fichier de log. Cette zone peut être librement modifiés pour réaliser des tests personnalisés.

En dessous de cette zone, on trouve la configuration avec le choix des paramètres. Ainsi pour le transformer Regex, on trouve le schéma recherché \textit{pattern} et l'information \textit{multi-line}. On spécifie ensuite nos colonnes obtenues en sortie et qui pourront ensuite être utilisés par les éléments parents.

Enfin, on trouve le bouton \textit{Apply current transformer} qui va tenter d'appliquer notre configuration sur notre jeu de donnée en entrée et nous fournir les résultats dans la dernière zone \textit{Result} affichés sous forme de table.

\paragraph{Fact}

L'élément \textit{fact} référence l'ensemble des colonnes qui ont été extraites par nos méthodes précédentes et permet de redéfinir leur nom, de spécifier si elle doivent être ingérer en Base de donnée et si oui avec quel typage SQL et enfin de préciser l'importance de notre colonne (si il s'agit d'une dimension ou colonne simple) pour réaliser notre modèle en étoile.

\paragraph{Défaut}

Par défaut, tout élément non connu est configurable via l'éditeur de texte. Contrairement au mode "Edition texte", on ne peut ici modifier que l'élément courant évitant ainsi d'affecter le reste de notre fichier.

\begin{figure}
\centering
\includegraphics[scale=0.8]{../img/impEcr/confRegex.jpg}
\caption{Interface de configuration de l'élément Regex}
\label{confRegex}
\end{figure}